# This is a keynavrc file. Yours should live in
# $HOME/.config/keynav/keynavrc
#
# Lines beginning with '#' are comments.
# Format is:
#   keysequence cmd1,cmd2,cmd3...
#
# Other special values are:
#   'clear' on a line by itself (no quotes) will erase all keybindings
#   (including the defaults)
#   'daemonize' on a line by itself (no quotes) will make keynav background
#   after parsing the configfile and having no critical errors.
#
# The 'start' command alone is handled specially, in that any key sequence
# mapped to 'start' will be grabbed when keynav starts up so you can invoke it
# to activate keynav. The remaining keys are only recognized while keynav is
# active
#
# Project page; http://www.semicomplete.com/projects/keynav

# Use 'clear' to blow away any previous keybindings
#clear

# Use 'daemonize' to background ourselves.
#daemonize

# Use 'picomfix' to fix issues associated with the picom compositor. May cause flickering.
picomfix


F12 start, grid-nav on, grid 20x20    # activate grid
space warp,sh "xmouseless",end        # jump on grid then exit and launch xmouseless
ctrl+bracketleft sh "xmouseless", end



#ctrl+semicolon start
Escape end
h cut-left
j cut-down
k cut-up
l cut-right
y cut-left,cut-up
u cut-right,cut-up
b cut-left,cut-down
n cut-right,cut-down
shift+h move-left
shift+j move-down
shift+k move-up
shift+l move-right
shift+y move-left,move-up
shift+u move-right,move-up
shift+b move-left,move-down
shift+n move-right,move-down
#space warp,click 1,end
semicolon warp,end
1 click 1
2 click 2
3 click 3

# Zoom to the current window
w windowzoom

# Zoom to the cursor location with a given height and width
c cursorzoom 200 200

# Handy for holding ctrl while using keynav:
ctrl+h cut-left
ctrl+j cut-down
ctrl+k cut-up
ctrl+l cut-right
ctrl+y cut-left,cut-up
ctrl+u cut-right,cut-up
ctrl+b cut-left,cut-down
ctrl+n cut-right,cut-down

# Arrow keys can move the grid as welll
Left cut-left
Down cut-down
Up cut-up
Right cut-right
shift+Left move-left
shift+Down move-down
shift+Up move-up
shift+Right move-right
ctrl+Left cut-left
ctrl+Down cut-down
ctrl+Up cut-up
ctrl+Right cut-right
ctrl+shift+Left move-left
ctrl+shift+Down move-down
ctrl+shift+Up move-up
ctrl+shift+Right move-right

# Record keynav actions
q record
shift+at playback

### Example using the 'sh' command.
# Make firefox the active window
f sh "xdotool windowactivate $(xdotool search -title -- '- Mozilla Firefox')", end
# Make a new tab in google chrome:
t sh "xdotool windowactivate $(xdotool search --title -- '- Google Chrome' | head -1); xdotool key ctrl+t",end
# Paste
v sh "xdotool key shift+Insert"

### Drag examples
# Start drag holding the left mouse button
#q drag 1
# Start drag holding middle mouse + control and shift
#w drag 2 ctrl+shift
# Dragging with modifiers
#q drag 1
#ctrl+q drag 1 ctrl
#shift+q drag 1 shift
#shift+ctrl+q drag 1 shift+ctrl

### History
a history-back

### Example of cut and move without the default values
#h cut-left .75
#j cut-down .75
#k cut-up .75
#l cut-right .75
#shift+h move-left .50
#shift+j move-down .50
#shift+k move-up .50
#shift+l move-right .50

### Example using a 2-row, 3-column grid,
# mapped to Insert/Home/PageUp/etc...
#6 grid 2x3
#Insert cell-select 1x1
#Home cell-select 1x2
#Prior cell-select 1x3   # PageUp
#Delete cell-select 2x1
#End cell-select 2x2
#Next cell-select 2x3   # PageDown

### Example using a 3x3 grid with nethack-vi keys
#ctrl+semicolon start, grid 3x3
#h cell-select 1x2      # left
#j cell-select 2x3      # down
#k cell-select 2x1      # up
#l cell-select 3x2      # right
#y cell-select 1x1      # up-left
#u cell-select 3x1      # up-right
#b cell-select 1x3      # down-left
#n cell-select 3x3      # down-right
#period cell-select 2x2 # center
